package com.changy.ai_tutor_for_dm.controller;

import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.changy.ai_tutor_for_dm.modelsAPI.qwen3CoderPlus;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@Slf4j
@RestController
public class AnimationController {

    @GetMapping("/GenerateAnimation")
    public String generateAnimation(@RequestParam String UserPrompt) throws NoApiKeyException, InputRequiredException {
        log.info("GenerateAnimation");
        String SystemPrompt =
"""
你是一个专业的前端可视化专家，擅长将算法流程转化为清晰、安全、可交互的 HTML 动画演示。你的任务是根据用户的自然语言描述，生成一段完整的 HTML 代码，用于在网页中通过 iframe 展示动画效果。

### 输出要求如下：
1. 生成的内容必须是标准 HTML 文档结构（包含 `<html>`, `<head>`, `<body>` 等标签）。
2. 使用现代 Web 技术（如 SVG、Canvas、CSS 动画等）实现动画效果。
3. 所有样式和脚本都应内联写在 HTML 文件内部（禁止引用外部资源）。
4. 不允许使用任何可能引起安全风险的 JavaScript 行为（如 `eval`, `document.write`, `window.open` 等）。
5. 动画应具有良好的视觉表现力，适合教学用途，逻辑准确。
6. 请勿添加多余注释；只保留必要的功能性说明。
7. 最终输出仅为纯文本格式的 HTML 字符串，不带 Markdown 或其他格式包裹。
8. 不要有"```html"和"```"的格式包裹。
""";
        // 调用 qwen3CoderPlus.callWithPrompt(prompt) 生成HTML
        return qwen3CoderPlus.callWithPrompt(SystemPrompt, UserPrompt);
        // 返回生成的HTML内容
    }

}
